The subject system and method are generally directed to routing terminals through intermediate vias in a circuit design. The system and method provide automated measures for interacting with a developer, providing a developer with an autorouter capable of pathfinding, cost optimizing, and routing selectively to and from intermediate vias disposed between terminals. The system and method also provide flow vias which maintain a relationship between a plurality of vias collectively and are thereby manipulable as a group. As electronic design automation (EDA) and circuit design are becoming more and more complex, the demand for automated measures to establish circuit boards and integrated circuits (ICs) is increasing. Quickly generating a physical layout or etch mask from a logical schematic of a circuit is becoming increasingly important. In generating the layout or silicon realization by a designer, a dichotomy exists separating the ability to manually specify certain paths or interconnections between components and a largely automated router type system where input from a designer is generally not able to be accepted. Thus, on one hand, the manual layout of paths between components is a very arduous, time-consuming, and error-prone activity requiring many man hours from groups of engineers and often delaying product launch substantially but yet yielding a solution that meets certain requirements. On the other hand, an automated routing approach generally lacks the ability to take as input certain design preferences or instructions from the designers.
Thus, the conventional automated routing approach, while it may be quicker, may not arrive at the optimum or desired solutions. Moreover, auto routers in the past have generally not been suitably configurable. Generally, a source component and a target component are specified, and the auto router determines on a per-connection basis an acceptable route between each pin of the components. This auto-routing method would automatically place vias through the layers of the integrated circuit or circuit board wherever it calculates to be acceptable. Unfortunately, this results in a haphazard scattering of vias throughout the circuitboard or integrated circuit (used interchangeably herein) and is often sub-optimal.
Often each independent connection is calculated to be the most efficient and thereby, the connection between components will suffer from different lengths resulting in delay issues between the signals. Indeed, differential pairs may pose problems that require manual intervention to resolve, as will phase, cross coupling, and the like. The end result of such auto-routers generally is a lack of clean routing paths with a largely random or non-matching pattern. Still further, auto-routers of the past have not allowed for the intermixing of ground and power vias as needed. The user has heretofore been unable to even specify the location of each via to meet design needs.
There is therefore a need for a system and method for automatically routing interconnections between components or sets of terminals through an intermediate via and to another set of terminals or components. There is a need for a system and method which provides for user-specified via location. There is a need for a system and method to automatically provide for logical groupings of vias into flow vias, allowing for the common manipulation of all vias in the flow via set. There is a need for a system and method to allow the user to specifically locate the vias within a flow via or to use a predetermined flow via pattern. There is a need for a system and method enabling a user to establish a flow via pattern to address and resolve design needs which may include the intermixing of ground and power vias therein to provide, for example, shielding, more precise control of delay coordination, crosstalk amelioration, cross-coupling, phase control, and the like. There is a need for a system and method to automatically locate the most optimal paths for a plurality of interconnections to a shared common via. There is a need for a system and method that is capable of routing bundles and flows of connections as one logical group to and from a flow via. There is a need for a system and method to provide clean routing responsive to user specifications.
It is to be understood that the description of the exemplary embodiments below are not intended to limit the scope of the present invention to EDA embodiments or to any particular environment, application, language, circuit bearing medium, package type, or format.